import re
 
def extract_numbers(s):
    return [int(num) if num.isdigit() else float(num) for num in re.findall(r'\d+(?:\.\d+)?', s)]
print(extract_numbers('1.0%'))